home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / unix / volume20 / pcomm1.2 / patches1to4 < prev    next >
Encoding:
Internet Message Format  |  1989-10-25  |  26.3 KB

  1. Subject:  v20i075:  Pcomm telecommunication package, Patches 1 through 4
  2. Newsgroups: comp.sources.unix
  3. Sender: sources
  4. Approved: rsalz@uunet.UU.NET
  5.  
  6. Submitted-by: fthood!egray
  7. Posting-number: Volume 20, Issue 75
  8. Archive-name: pcomm1.2
  9.  
  10. There are the first four patches to pcomm1.2
  11.  
  12. Emmet P. Gray                US Army, HQ III Corps & Fort Hood
  13. ...!uunet!uiucuxc!fthood!egray        Attn: AFZF-DE-ENV
  14.                     Directorate of Engineering & Housing
  15.                     Environmental Management Office
  16.                     Fort Hood, TX 76544-5057
  17.  
  18.  
  19. #! /bin/sh
  20. # This is a shell archive.  Remove anything before this line, then unpack
  21. # it by saving it into a file and typing "sh file".  To overwrite existing
  22. # files, type "sh file -c".  You can also feed this as standard input via
  23. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  24. # will see the following message at the end:
  25. #        "End of shell archive."
  26. # Contents:  patch1 patch2 patch3 patch4
  27. # Wrapped by rsalz@papaya.bbn.com on Wed Oct 25 16:56:12 1989
  28. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  29. if test -f 'patch1' -a "${1}" != "-c" ; then 
  30.   echo shar: Will not clobber existing file \"'patch1'\"
  31. else
  32. echo shar: Extracting \"'patch1'\" \(5523 characters\)
  33. sed "s/^X//" >'patch1' <<'END_OF_FILE'
  34. X
  35. XThis is patch #1 to the Pcomm v1.2 distribution package.  After this
  36. Xpatch is installed, the version number will change from 1.2.0 to 1.2.1.
  37. X
  38. XThis patch will fix a problem with ymodem transfers on 16 bit systems,
  39. Xand will fix a bug in the redial function.
  40. X
  41. XMany thanks to Larry Clark (...killer!larryd1) for pointing these bugs
  42. Xout to me.
  43. X
  44. XEmmet P. Gray                US Army, HQ III Corps & Fort Hood
  45. X...!uunet!uiucuxc!fthood!egray        Attn: AFZF-DE-ENV
  46. X                    Directorate of Engineering & Housing
  47. X                    Environmental Management Office
  48. X                    Fort Hood, TX 76544-5057
  49. X
  50. X-----------------------------------------------------------------------------
  51. XPrereq: "1.2.0"
  52. X*** old/info.c    Fri Feb 10 11:33:36 1989
  53. X--- info.c    Sun Feb 12 10:07:13 1989
  54. X***************
  55. X*** 4,9
  56. X   */
  57. X  
  58. X! #define VERSION    "1.2.0"
  59. X! #define DATE    "4 Feb 89"
  60. X  
  61. X  #include <stdio.h>
  62. X
  63. X--- 4,9 -----
  64. X   */
  65. X  
  66. X! #define VERSION    "1.2.1"
  67. X! #define DATE    "18 Feb 89"
  68. X  
  69. X  #include <stdio.h>
  70. X*** old/main.c    Fri Feb 10 11:33:37 1989
  71. X--- main.c    Sun Feb 12 10:07:07 1989
  72. X***************
  73. X*** 13,16
  74. X   *    Release v1.1    21 Aug 88
  75. X   *    Release v1.2.0     4 Feb 89
  76. X   */
  77. X  
  78. X
  79. X--- 13,17 -----
  80. X   *    Release v1.1    21 Aug 88
  81. X   *    Release v1.2.0     4 Feb 89
  82. X+  *    Patch #1    18 Feb 89
  83. X   */
  84. X  
  85. X*** old/redial.c    Fri Feb 10 11:28:38 1989
  86. X--- redial.c    Fri Feb 10 07:22:18 1989
  87. X***************
  88. X*** 52,56
  89. X          entry = strtok(ans, " \t");
  90. X          for (i=0; i<NUM_QUEUE; i++) {
  91. X!             if (*entry == '\0') {
  92. X                  dir->q_num[i] = -1;
  93. X                  continue;
  94. X
  95. X--- 52,56 -----
  96. X          entry = strtok(ans, " \t");
  97. X          for (i=0; i<NUM_QUEUE; i++) {
  98. X!             if (entry == NULL) {
  99. X                  dir->q_num[i] = -1;
  100. X                  continue;
  101. X*** old/script.c    Fri Feb 10 11:28:38 1989
  102. X--- script.c    Tue Feb  7 10:26:44 1989
  103. X***************
  104. X*** 41,45
  105. X      char buf[80], *ttyname(), *strcpy(), *path, *findfile();
  106. X      void _exit(), error_win(), input_off(), do_input();
  107. X-     unsigned int sleep();
  108. X  
  109. X                      /* if empty */
  110. X
  111. X--- 41,44 -----
  112. X      char buf[80], *ttyname(), *strcpy(), *path, *findfile();
  113. X      void _exit(), error_win(), input_off(), do_input();
  114. X  
  115. X                      /* if empty */
  116. X***************
  117. X*** 153,157
  118. X      close(dup_pipe[0]);
  119. X      close(dup_pipe[1]);
  120. X-     sleep(1);
  121. X      beep();
  122. X      return;
  123. X
  124. X--- 152,155 -----
  125. X      close(dup_pipe[0]);
  126. X      close(dup_pipe[1]);
  127. X      beep();
  128. X      return;
  129. X*** old/terminal.c    Mon Feb 13 08:05:19 1989
  130. X--- terminal.c    Mon Feb 13 08:11:33 1989
  131. X***************
  132. X*** 15,18
  133. X  #include "xmodem.h"
  134. X  
  135. X  #ifdef UNIXPC
  136. X  #include <sys/phone.h>
  137. X
  138. X--- 15,24 -----
  139. X  #include "xmodem.h"
  140. X  
  141. X+ #ifdef BSD
  142. X+ #include <sys/file.h>
  143. X+ #else /* BSD */
  144. X+ #include <fcntl.h>
  145. X+ #endif /* BSD */
  146. X+ 
  147. X  #ifdef UNIXPC
  148. X  #include <sys/phone.h>
  149. X***************
  150. X*** 17,21
  151. X  #ifdef UNIXPC
  152. X  #include <sys/phone.h>
  153. X- #include <fcntl.h>
  154. X  #endif /* UNIXPC */
  155. X  
  156. X
  157. X--- 23,26 -----
  158. X  #ifdef UNIXPC
  159. X  #include <sys/phone.h>
  160. X  #endif /* UNIXPC */
  161. X  
  162. X***************
  163. X*** 408,411
  164. X      void send_str(), st_line(), line_set();
  165. X      char buf[80], *strcpy(), *ttyname();
  166. X                      /* sanity checking */
  167. X      if (modem == NULL)
  168. X
  169. X--- 413,417 -----
  170. X      void send_str(), st_line(), line_set();
  171. X      char buf[80], *strcpy(), *ttyname();
  172. X+     unsigned int sleep();
  173. X                      /* sanity checking */
  174. X      if (modem == NULL)
  175. X***************
  176. X*** 436,439
  177. X  #endif /* UNIXPC */
  178. X          send_str(modem->hang_up[modem->m_cur], SLOW);
  179. X  
  180. X      if (verbose)
  181. X
  182. X--- 442,453 -----
  183. X  #endif /* UNIXPC */
  184. X          send_str(modem->hang_up[modem->m_cur], SLOW);
  185. X+ 
  186. X+     /*
  187. X+      * Some modems do "damage" to the tty driver when they hang up by
  188. X+      * flashing the modem control lines on the port.  The following is
  189. X+      * some witchcraft designed to put the driver back the way it was.
  190. X+      */
  191. X+     sleep(1);
  192. X+     close(open(ttyname(fd), O_RDWR));
  193. X  
  194. X      if (verbose)
  195. X*** old/x_rcv.c    Fri Feb 10 11:28:38 1989
  196. X--- x_rcv.c    Fri Feb 10 07:19:12 1989
  197. X***************
  198. X*** 29,33
  199. X      int i, default_err, is_batch, max_block, code, file_count, got_hdr;
  200. X      int hours, mins, secs, len;
  201. X!     long block, recv;
  202. X      float percent, performance;
  203. X      unsigned char blk;
  204. X
  205. X--- 29,33 -----
  206. X      int i, default_err, is_batch, max_block, code, file_count, got_hdr;
  207. X      int hours, mins, secs, len;
  208. X!     long block, recv, partial;
  209. X      float percent, performance;
  210. X      unsigned char blk;
  211. X***************
  212. X*** 194,199
  213. X              if (!code) {
  214. X                  if (file_length != 0L) {
  215. X!                     len = file_length - recv;
  216. X!                     if (len > block_size)
  217. X                          len = block_size;
  218. X                  }
  219. X
  220. X--- 194,199 -----
  221. X              if (!code) {
  222. X                  if (file_length != 0L) {
  223. X!                     partial = file_length - recv;
  224. X!                     if (partial > (long) block_size)
  225. X                          len = block_size;
  226. X                      else
  227. X***************
  228. X*** 197,200
  229. X                      if (len > block_size)
  230. X                          len = block_size;
  231. X                  }
  232. X                  else
  233. X
  234. X--- 197,202 -----
  235. X                      if (partial > (long) block_size)
  236. X                          len = block_size;
  237. X+                     else
  238. X+                         len = partial;
  239. X                  }
  240. X                  else
  241. X***************
  242. X*** 252,257
  243. X                  wattrstr(win, A_BOLD, "TRUNCATE ERROR");
  244. X                  wrefresh(win);
  245. X!                     /* fatal */
  246. X!                 return(1);
  247. X              }
  248. X          }
  249. X
  250. X--- 254,258 -----
  251. X                  wattrstr(win, A_BOLD, "TRUNCATE ERROR");
  252. X                  wrefresh(win);
  253. X!                 sleep(1);
  254. X              }
  255. X          }
  256. X*** old/Release.notes    Fri Feb 10 11:28:37 1989
  257. X--- Release.notes    Fri Feb 10 07:42:26 1989
  258. X***************
  259. X*** 38,42
  260. X      definitions for zmodem).
  261. X  
  262. X!     The pcomm.input program has been changed to use multiple
  263. X      character buffered writes to the screen.  Both the input and
  264. X      output buffer sizes are tunable parameters in config.h
  265. X
  266. X--- 38,42 -----
  267. X      definitions for zmodem).
  268. X  
  269. X!     The pcomm_input program has been changed to use multiple
  270. X      character buffered writes to the screen.  Both the input and
  271. X      output buffer sizes are tunable parameters in config.h
  272. X
  273. X
  274. END_OF_FILE
  275. if test 5523 -ne `wc -c <'patch1'`; then
  276.     echo shar: \"'patch1'\" unpacked with wrong size!
  277. fi
  278. # end of 'patch1'
  279. fi
  280. if test -f 'patch2' -a "${1}" != "-c" ; then 
  281.   echo shar: Will not clobber existing file \"'patch2'\"
  282. else
  283. echo shar: Extracting \"'patch2'\" \(1878 characters\)
  284. sed "s/^X//" >'patch2' <<'END_OF_FILE'
  285. XSubject: Patch #2 to Pcomm v1.2
  286. X
  287. XThis is patch #2 to the Pcomm v1.2 distribution package.  This patch
  288. Xwill fix a problem that could cause segmentation faults when updating
  289. Xthe dialing directory.
  290. X
  291. XEmmet P. Gray                US Army, HQ III Corps & Fort Hood
  292. X...!uunet!uiucuxc!fthood!egray        Attn: AFZF-DE-ENV
  293. X                    Directorate of Engineering & Housing
  294. X                    Environmental Management Office
  295. X                    Fort Hood, TX 76544-5057
  296. X------------------------------------------------------------------------------
  297. XPrereq: "1.2.1"
  298. X*** old/info.c    Tue Mar  7 11:15:48 1989
  299. X--- info.c    Tue Mar  7 11:16:39 1989
  300. X***************
  301. X*** 4,9
  302. X   */
  303. X  
  304. X! #define VERSION    "1.2.1"
  305. X! #define DATE    "18 Feb 89"
  306. X  
  307. X  #include <stdio.h>
  308. X
  309. X--- 4,9 -----
  310. X   */
  311. X  
  312. X! #define VERSION    "1.2.2"
  313. X! #define DATE    "11 Mar 89"
  314. X  
  315. X  #include <stdio.h>
  316. X*** old/main.c    Tue Mar  7 11:15:49 1989
  317. X--- main.c    Tue Mar  7 11:17:05 1989
  318. X***************
  319. X*** 14,17
  320. X   *    Release v1.2.0     4 Feb 89
  321. X   *    Patch #1    18 Feb 89
  322. X   */
  323. X  
  324. X
  325. X--- 14,18 -----
  326. X   *    Release v1.2.0     4 Feb 89
  327. X   *    Patch #1    18 Feb 89
  328. X+  *    Patch #2    11 Mar 89
  329. X   */
  330. X  
  331. X*** old/d_lib.c    Tue Mar  7 10:17:52 1989
  332. X--- d_lib.c    Tue Mar  7 12:16:34 1989
  333. X***************
  334. X*** 172,177
  335. X  
  336. X      if (entry <= dir->d_entries)
  337. X!         free_ptr(temp[entry]);
  338. X!     temp[entry] = str_dup(buf);
  339. X                      /* fill in holes if beyond end */
  340. X      if (entry > dir->d_entries+1) {
  341. X
  342. X--- 172,179 -----
  343. X  
  344. X      if (entry <= dir->d_entries)
  345. X!         temp[entry] = str_rep(temp[entry], buf);
  346. X!     else
  347. X!         temp[entry] = str_dup(buf);
  348. X! 
  349. X                      /* fill in holes if beyond end */
  350. X      if (entry > dir->d_entries+1) {
  351. X***************
  352. X*** 180,184
  353. X               param->d_baud, param->d_parity, param->d_dbits,
  354. X               param->d_sbits, *param->d_duplex);
  355. X!             temp[i] = str_rep(temp[i], buf);
  356. X          }
  357. X      }
  358. X
  359. X--- 182,186 -----
  360. X               param->d_baud, param->d_parity, param->d_dbits,
  361. X               param->d_sbits, *param->d_duplex);
  362. X!             temp[i] = str_dup(buf);
  363. X          }
  364. X      }
  365. X
  366. X
  367. END_OF_FILE
  368. if test 1878 -ne `wc -c <'patch2'`; then
  369.     echo shar: \"'patch2'\" unpacked with wrong size!
  370. fi
  371. # end of 'patch2'
  372. fi
  373. if test -f 'patch3' -a "${1}" != "-c" ; then 
  374.   echo shar: Will not clobber existing file \"'patch3'\"
  375. else
  376. echo shar: Extracting \"'patch3'\" \(9070 characters\)
  377. sed "s/^X//" >'patch3' <<'END_OF_FILE'
  378. XSubject: Patch #3 to Pcomm v1.2
  379. X
  380. XThis is patch #3 to the Pcomm v1.2 distribution package.  This patch
  381. Xwill fix few problems with Pcomm on Microsoft XENIX 3.0/3.5 and changes
  382. Xthe method of getting rid of zombie processes.
  383. X
  384. XEmmet P. Gray                US Army, HQ III Corps & Fort Hood
  385. X...!uunet!uiucuxc!fthood!egray        Attn: AFZF-DE-ENV
  386. X                    Directorate of Engineering & Housing
  387. X                    Environmental Management Office
  388. X                    Fort Hood, TX 76544-5057
  389. X------------------------------------------------------------------------------
  390. XPrereq: "1.2.2"
  391. X*** old/info.c    Tue Mar  7 11:18:10 1989
  392. X--- info.c    Thu May 11 11:54:25 1989
  393. X***************
  394. X*** 4,9
  395. X   */
  396. X  
  397. X! #define VERSION    "1.2.2"
  398. X! #define DATE    "11 Mar 89"
  399. X  
  400. X  #include <stdio.h>
  401. X
  402. X--- 4,9 -----
  403. X   */
  404. X  
  405. X! #define VERSION    "1.2.3"
  406. X! #define DATE    "11 May 89"
  407. X  
  408. X  #include <stdio.h>
  409. X*** old/Makefile    Fri Feb  3 07:39:32 1989
  410. X--- Makefile    Thu May 11 11:53:47 1989
  411. X***************
  412. X*** 8,11
  413. X  #TERMLIB = -ltinfo -lx
  414. X  
  415. X  CFLAGS = -O
  416. X  LDFLAGS = -s
  417. X
  418. X--- 8,15 -----
  419. X  #TERMLIB = -ltinfo -lx
  420. X  
  421. X+ #for 80286 versions of Microsoft Xenix 3.0/3.5
  422. X+ #CFLAGS = -O -Mme2 -Dresetterm=xresetterm -DXENIX_3
  423. X+ #LDFLAGS = -s -Mm -F 5120
  424. X+ 
  425. X  CFLAGS = -O
  426. X  LDFLAGS = -s
  427. X***************
  428. X*** 63,71
  429. X      cp matches $(BIN)
  430. X      cp modem_break $(BIN)
  431. X! #    rm pcomm
  432. X! #    rm pcomm_input
  433. X! #    rm waitfor
  434. X! #    rm matches
  435. X! #    rm modem_break
  436. X  
  437. X  lint:
  438. X
  439. X--- 67,77 -----
  440. X      cp matches $(BIN)
  441. X      cp modem_break $(BIN)
  442. X! 
  443. X! clean:
  444. X!     rm pcomm
  445. X!     rm pcomm_input
  446. X!     rm waitfor
  447. X!     rm matches
  448. X!     rm modem_break
  449. X  
  450. X  lint:
  451. X*** old/d_menu.c    Fri Jan 27 09:38:36 1989
  452. X--- d_menu.c    Thu May 11 10:35:34 1989
  453. X***************
  454. X*** 50,53
  455. X      waddstr(dm_win, " Scroll Down");
  456. X  
  457. X      mvwattrstr(dm_win, 17, 14, A_BOLD, "<up>/<down>");
  458. X      waddstr(dm_win, " Page");
  459. X
  460. X--- 50,56 -----
  461. X      waddstr(dm_win, " Scroll Down");
  462. X  
  463. X+ #ifdef OLDCURSES
  464. X+     mvwattrstr(dm_win, 17, 14, A_BOLD, "U/N");
  465. X+ #else /* OLDCURSES */
  466. X      mvwattrstr(dm_win, 17, 14, A_BOLD, "<up>/<down>");
  467. X  #endif /* OLDCURSES */
  468. X***************
  469. X*** 51,54
  470. X  
  471. X      mvwattrstr(dm_win, 17, 14, A_BOLD, "<up>/<down>");
  472. X      waddstr(dm_win, " Page");
  473. X      mvwattrch(dm_win, 17, 34, A_BOLD, 'L');
  474. X
  475. X--- 54,58 -----
  476. X  #else /* OLDCURSES */
  477. X      mvwattrstr(dm_win, 17, 14, A_BOLD, "<up>/<down>");
  478. X+ #endif /* OLDCURSES */
  479. X      waddstr(dm_win, " Page");
  480. X      mvwattrch(dm_win, 17, 34, A_BOLD, 'L');
  481. X*** old/di_delay.c    Fri Jan 13 07:47:22 1989
  482. X--- di_delay.c    Wed Apr 26 08:35:19 1989
  483. X***************
  484. X*** 50,54
  485. X      }
  486. X                      /* get the rdelay number */
  487. X!     wmove(dt_win, 6, 20);
  488. X      wrefresh(dt_win);
  489. X      if ((rdelay = get_num(dt_win, 3)) == -1) {
  490. X
  491. X--- 50,54 -----
  492. X      }
  493. X                      /* get the rdelay number */
  494. X!     wmove(dt_win, 6, 22);
  495. X      wrefresh(dt_win);
  496. X      if ((rdelay = get_num(dt_win, 3)) == -1) {
  497. X*** old/di_win.c    Mon Jan 16 17:17:30 1989
  498. X--- di_win.c    Sat Apr 22 22:43:28 1989
  499. X***************
  500. X*** 198,202
  501. X              else
  502. X                  write(fd, &cr, 1);
  503. X!             sleep(1);
  504. X          }
  505. X                      /* if we get here, no key was pressed */
  506. X
  507. X--- 198,202 -----
  508. X              else
  509. X                  write(fd, &cr, 1);
  510. X!             sleep(2);
  511. X          }
  512. X                      /* if we get here, no key was pressed */
  513. X***************
  514. X*** 257,260
  515. X                      dir->q_num[j] = dir->q_num[j+1];
  516. X                  dir->q_num[NUM_QUEUE-1] = -1;
  517. X                  break;
  518. X              case 'e':
  519. X
  520. X--- 257,263 -----
  521. X                      dir->q_num[j] = dir->q_num[j+1];
  522. X                  dir->q_num[NUM_QUEUE-1] = -1;
  523. X+ 
  524. X+                 if (dir->q_num[i] == -1)
  525. X+                     i = 0;
  526. X                  break;
  527. X              case 'e':
  528. X*** old/getopt.c    Tue Oct 18 11:47:04 1988
  529. X--- getopt.c    Wed Apr 26 08:26:40 1989
  530. X***************
  531. X*** 4,7
  532. X  
  533. X  #include <stdio.h>
  534. X  
  535. X  int optind = 1;
  536. X
  537. X--- 4,8 -----
  538. X  
  539. X  #include <stdio.h>
  540. X+ #include "config.h"
  541. X  
  542. X  int optind = 1;
  543. X*** old/help.c    Mon Jan 16 17:18:02 1989
  544. X--- help.c    Thu May 11 10:36:59 1989
  545. X***************
  546. X*** 23,26
  547. X      horizontal(h_win, 2, 0, 80);
  548. X      mvwattrstr(h_win, 4, 0, A_BOLD, "       Major Functions          Utility Functions         File Functions\n\n");
  549. X      mvwprintw(h_win,  6,  2, "Dialing Directory.%4.4s-D  Program Info ....%4.4s-I  Send Files ....%4.4s-<up>", hot, hot, hot);
  550. X      mvwprintw(h_win,  7,  2, "Auto Redial ......%4.4s-R  Setup Screen ....%4.4s-S  Receive Files .%4.4s-<down>", hot, hot, hot);
  551. X
  552. X--- 23,30 -----
  553. X      horizontal(h_win, 2, 0, 80);
  554. X      mvwattrstr(h_win, 4, 0, A_BOLD, "       Major Functions          Utility Functions         File Functions\n\n");
  555. X+ #ifdef OLDCURSES
  556. X+     mvwprintw(h_win,  6,  2, "Dialing Directory.%4.4s-D  Program Info ....%4.4s-I  Send Files ....%4.4s-U", hot, hot, hot);
  557. X+     mvwprintw(h_win,  7,  2, "Auto Redial ......%4.4s-R  Setup Screen ....%4.4s-S  Receive Files .%4.4s-N", hot, hot, hot);
  558. X+ #else /* OLDCURSES */
  559. X      mvwprintw(h_win,  6,  2, "Dialing Directory.%4.4s-D  Program Info ....%4.4s-I  Send Files ....%4.4s-<up>", hot, hot, hot);
  560. X      mvwprintw(h_win,  7,  2, "Auto Redial ......%4.4s-R  Setup Screen ....%4.4s-S  Receive Files .%4.4s-<down>", hot, hot, hot);
  561. X***************
  562. X*** 25,28
  563. X      mvwprintw(h_win,  6,  2, "Dialing Directory.%4.4s-D  Program Info ....%4.4s-I  Send Files ....%4.4s-<up>", hot, hot, hot);
  564. X      mvwprintw(h_win,  7,  2, "Auto Redial ......%4.4s-R  Setup Screen ....%4.4s-S  Receive Files .%4.4s-<down>", hot, hot, hot);
  565. X      mvwprintw(h_win,  8,  2, "Keyboard Macros ..%4.4s-M  Change Directory.%4.4s-B  Pass Thru Mode.%4.4s-T", hot, hot, hot);
  566. X      mvwprintw(h_win,  9,  2, "Line Settings ....%4.4s-P  Clear Screen ....%4.4s-C  Directory .....%4.4s-F", hot, hot, hot);
  567. X
  568. X--- 29,33 -----
  569. X      mvwprintw(h_win,  6,  2, "Dialing Directory.%4.4s-D  Program Info ....%4.4s-I  Send Files ....%4.4s-<up>", hot, hot, hot);
  570. X      mvwprintw(h_win,  7,  2, "Auto Redial ......%4.4s-R  Setup Screen ....%4.4s-S  Receive Files .%4.4s-<down>", hot, hot, hot);
  571. X+ #endif /* OLDCURSES */
  572. X      mvwprintw(h_win,  8,  2, "Keyboard Macros ..%4.4s-M  Change Directory.%4.4s-B  Pass Thru Mode.%4.4s-T", hot, hot, hot);
  573. X      mvwprintw(h_win,  9,  2, "Line Settings ....%4.4s-P  Clear Screen ....%4.4s-C  Directory .....%4.4s-F", hot, hot, hot);
  574. X*** old/main.c    Tue Mar  7 11:18:10 1989
  575. X--- main.c    Thu May 11 11:54:47 1989
  576. X***************
  577. X*** 15,18
  578. X   *    Patch #1    18 Feb 89
  579. X   *    Patch #2    11 Mar 89
  580. X   */
  581. X  
  582. X
  583. X--- 15,19 -----
  584. X   *    Patch #1    18 Feb 89
  585. X   *    Patch #2    11 Mar 89
  586. X+  *    Patch #3    11 May 89
  587. X   */
  588. X  
  589. X***************
  590. X*** 150,153
  591. X      cbreak();
  592. X      noecho();
  593. X  
  594. X  #ifdef OLDCURSES
  595. X
  596. X--- 151,157 -----
  597. X      cbreak();
  598. X      noecho();
  599. X+ #ifdef XENIX_3
  600. X+     raw();
  601. X+ #endif /* XENIX_3 */
  602. X  
  603. X  #ifdef OLDCURSES
  604. X*** old/modem_break.c    Thu Jan 12 14:32:16 1989
  605. X--- modem_break.c    Wed May 10 12:18:47 1989
  606. X***************
  607. X*** 5,8
  608. X  
  609. X  #include <stdio.h>
  610. X  #ifdef BSD
  611. X  #include <sgtty.h>
  612. X
  613. X--- 5,12 -----
  614. X  
  615. X  #include <stdio.h>
  616. X+ #ifdef XENIX_3
  617. X+ #include <sys/types.h>
  618. X+ #include <sys/ioctl.h>
  619. X+ #endif /* XENIX_3 */
  620. X  #ifdef BSD
  621. X  #include <sgtty.h>
  622. X*** old/script.c    Mon Feb 20 15:32:06 1989
  623. X--- script.c    Sun Apr  2 12:21:17 1989
  624. X***************
  625. X*** 138,143
  626. X              break;
  627. X      }
  628. X-                     /* wait for the zombie process */
  629. X-     wait(&sig_status);
  630. X  
  631. X      signal(SIGINT, istat);
  632. X
  633. X--- 138,141 -----
  634. X              break;
  635. X      }
  636. X  
  637. X      signal(SIGINT, istat);
  638. X*** old/terminal.c    Mon Feb 20 15:32:08 1989
  639. X--- terminal.c    Tue May  2 09:29:35 1989
  640. X***************
  641. X*** 394,397
  642. X  input_off()
  643. X  {
  644. X      if (pid != -1) {
  645. X          kill(pid, SIGTERM);
  646. X
  647. X--- 394,399 -----
  648. X  input_off()
  649. X  {
  650. X+     SIG_TYPE (*cstat)();
  651. X+ 
  652. X      if (pid != -1) {
  653. X          /*
  654. X***************
  655. X*** 395,398
  656. X  {
  657. X      if (pid != -1) {
  658. X          kill(pid, SIGTERM);
  659. X          pid = -1;
  660. X
  661. X--- 397,404 -----
  662. X  
  663. X      if (pid != -1) {
  664. X+         /*
  665. X+          * This serves to periodically clean up the process table
  666. X+          */
  667. X+         cstat = signal(SIGCLD, SIG_IGN);
  668. X          kill(pid, SIGTERM);
  669. X          pid = -1;
  670. X***************
  671. X*** 397,400
  672. X          kill(pid, SIGTERM);
  673. X          pid = -1;
  674. X      }
  675. X      return;
  676. X
  677. X--- 403,407 -----
  678. X          kill(pid, SIGTERM);
  679. X          pid = -1;
  680. X+         signal(SIGCLD, cstat);
  681. X      }
  682. X      return;
  683. X*** old/tty_att.c    Thu Dec 29 13:24:52 1988
  684. X--- tty_att.c    Wed May 10 12:18:47 1989
  685. X***************
  686. X*** 4,7
  687. X  
  688. X  #include <stdio.h>
  689. X  #include <termio.h>
  690. X  #include <fcntl.h>
  691. X
  692. X--- 4,11 -----
  693. X  
  694. X  #include <stdio.h>
  695. X+ #ifdef XENIX_3
  696. X+ #include <sys/types.h>
  697. X+ #include <sys/ioctl.h>
  698. X+ #endif /* XENIX_3 */
  699. X  #include <termio.h>
  700. X  #include <fcntl.h>
  701. X*** old/vcs.c    Fri Jan 27 10:06:04 1989
  702. X--- vcs.c    Wed May 10 12:18:48 1989
  703. X***************
  704. X*** 10,13
  705. X  #include <curses.h>
  706. X  #include <term.h>
  707. X  #endif /* OLDCURSES */
  708. X  
  709. X
  710. X--- 10,15 -----
  711. X  #include <curses.h>
  712. X  #include <term.h>
  713. X+ #else /* OLDCURSES */
  714. X+ char tcbuf[1024];
  715. X  #endif /* OLDCURSES */
  716. X  
  717. X***************
  718. X*** 188,192
  719. X  
  720. X  #ifdef OLDCURSES
  721. X!     char tcbuf[1024], tb[1024], *t, *cursor_home, *clr_eol, *clr_eos;
  722. X      char *clear_screen, *cursor_up, *cursor_down, *cursor_right;
  723. X      char *cursor_left, *cursor_address, *getenv(), *tgetstr(), *tgoto();
  724. X
  725. X--- 190,194 -----
  726. X  
  727. X  #ifdef OLDCURSES
  728. X!     char tb[1024], *t, *cursor_home, *clr_eol, *clr_eos;
  729. X      char *clear_screen, *cursor_up, *cursor_down, *cursor_right;
  730. X      char *cursor_left, *cursor_address, *getenv(), *tgetstr(), *tgoto();
  731. X*** old/x_extrnl.c    Fri Feb  3 10:08:06 1989
  732. X--- x_extrnl.c    Sun Apr  2 12:21:19 1989
  733. X***************
  734. X*** 118,123
  735. X              break;
  736. X      }
  737. X-                     /* wait for the zombie process */
  738. X-     wait(&sig_status);
  739. X  
  740. X      signal(SIGINT, istat);
  741. X
  742. X--- 118,121 -----
  743. X              break;
  744. X      }
  745. X  
  746. X      signal(SIGINT, istat);
  747. X
  748. X
  749. END_OF_FILE
  750. if test 9070 -ne `wc -c <'patch3'`; then
  751.     echo shar: \"'patch3'\" unpacked with wrong size!
  752. fi
  753. # end of 'patch3'
  754. fi
  755. if test -f 'patch4' -a "${1}" != "-c" ; then 
  756.   echo shar: Will not clobber existing file \"'patch4'\"
  757. else
  758. echo shar: Extracting \"'patch4'\" \(7060 characters\)
  759. sed "s/^X//" >'patch4' <<'END_OF_FILE'
  760. XSubject: Patch #4 to Pcomm v1.2
  761. X
  762. XThis is patch #4 to the Pcomm v1.2 distribution package.  This patch
  763. Xwill fix the problem of transferring files on BSD systems when the names
  764. Xare greater than 14 characters in length.  (However, the file names will
  765. Xstill get truncated to 14 characters, so I'll address that in a later
  766. Xrelease).
  767. X
  768. XThis patch also contains some odds and end suggested by Jonathan Bayer
  769. X(...uunet!ispi!jbayer) and Gary Trujillo (...spdcc!gnosys!gst) over the
  770. Xpast few months.
  771. X
  772. XEmmet P. Gray                US Army, HQ III Corps & Fort Hood
  773. X...!uunet!uiucuxc!fthood!egray        Attn: AFZF-DE-ENV
  774. Xfthood!egray@uxc.cso.uiuc.edu        Directorate of Engineering & Housing
  775. X                    Environmental Management Office
  776. X                    Fort Hood, TX 76544-5057
  777. X
  778. X-----------------------------------------------------------------------------
  779. XPrereq: "1.2.3"
  780. X*** old/info.c    Sun Jun 11 10:25:44 1989
  781. X--- info.c    Fri Jun 23 10:03:05 1989
  782. X***************
  783. X*** 4,9
  784. X   */
  785. X  
  786. X! #define VERSION    "1.2.3"
  787. X! #define DATE    "11 May 89"
  788. X  
  789. X  #include <stdio.h>
  790. X
  791. X--- 4,9 -----
  792. X   */
  793. X  
  794. X! #define VERSION    "1.2.4"
  795. X! #define DATE    "23 Jun 89"
  796. X  
  797. X  #include <stdio.h>
  798. X*** old/main.c    Sun Jun 11 10:25:43 1989
  799. X--- main.c    Fri Jun 23 10:03:18 1989
  800. X***************
  801. X*** 16,19
  802. X   *    Patch #2    11 Mar 89
  803. X   *    Patch #3    11 May 89
  804. X   */
  805. X  
  806. X
  807. X--- 16,20 -----
  808. X   *    Patch #2    11 Mar 89
  809. X   *    Patch #3    11 May 89
  810. X+  *    Patch #4    23 Jun 89
  811. X   */
  812. X  
  813. X*** old/st_line.c    Sat Jun 17 09:16:50 1989
  814. X--- st_line.c    Sat Jun 17 09:17:08 1989
  815. X***************
  816. X*** 76,79
  817. X      delwin(sl_win);
  818. X      move(y, x);
  819. X      return;
  820. X  }
  821. X
  822. X--- 76,80 -----
  823. X      delwin(sl_win);
  824. X      move(y, x);
  825. X+     refresh();
  826. X      return;
  827. X  }
  828. X*** old/terminal.c    Sun Jun 11 10:25:38 1989
  829. X--- terminal.c    Sun Jun 11 10:32:11 1989
  830. X***************
  831. X*** 431,435
  832. X          st_line("disconnecting");
  833. X                      /* special case for OBM */
  834. X- #ifdef UNIXPC
  835. X      if (!strcmp(modem->mname[modem->m_cur], "OBM")) {
  836. X          ioctl(fd, PIOCDISC);
  837. X
  838. X--- 431,434 -----
  839. X          st_line("disconnecting");
  840. X                      /* special case for OBM */
  841. X      if (!strcmp(modem->mname[modem->m_cur], "OBM")) {
  842. X  #ifdef UNIXPC
  843. X***************
  844. X*** 433,436
  845. X  #ifdef UNIXPC
  846. X      if (!strcmp(modem->mname[modem->m_cur], "OBM")) {
  847. X          ioctl(fd, PIOCDISC);
  848. X          /*
  849. X
  850. X--- 432,436 -----
  851. X                      /* special case for OBM */
  852. X      if (!strcmp(modem->mname[modem->m_cur], "OBM")) {
  853. X+ #ifdef UNIXPC
  854. X          ioctl(fd, PIOCDISC);
  855. X          /*
  856. X***************
  857. X*** 445,450
  858. X          line_set();
  859. X          fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) & ~O_NDELAY);
  860. X-     }
  861. X-     else
  862. X  #endif /* UNIXPC */
  863. X          send_str(modem->hang_up[modem->m_cur], SLOW);
  864. X
  865. X--- 445,448 -----
  866. X          line_set();
  867. X          fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) & ~O_NDELAY);
  868. X  #endif /* UNIXPC */
  869. X      }
  870. X***************
  871. X*** 448,451
  872. X      else
  873. X  #endif /* UNIXPC */
  874. X          send_str(modem->hang_up[modem->m_cur], SLOW);
  875. X  
  876. X
  877. X--- 446,451 -----
  878. X          fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) & ~O_NDELAY);
  879. X  #endif /* UNIXPC */
  880. X+     }
  881. X+     else {
  882. X          send_str(modem->hang_up[modem->m_cur], SLOW);
  883. X  
  884. X***************
  885. X*** 450,460
  886. X          send_str(modem->hang_up[modem->m_cur], SLOW);
  887. X  
  888. X!     /*
  889. X!      * Some modems do "damage" to the tty driver when they hang up by
  890. X!      * flashing the modem control lines on the port.  The following is
  891. X!      * some witchcraft designed to put the driver back the way it was.
  892. X!      */
  893. X!     sleep(1);
  894. X!     close(open(ttyname(fd), O_RDWR));
  895. X  
  896. X      if (verbose)
  897. X
  898. X--- 450,462 -----
  899. X          send_str(modem->hang_up[modem->m_cur], SLOW);
  900. X  
  901. X!         /*
  902. X!          * Some modems do "damage" to the tty driver when they hang
  903. X!          * up by flashing the modem control lines on the port.  The
  904. X!          * following is some witchcraft designed to put the driver
  905. X!          * back the way it was.
  906. X!          */
  907. X!         sleep(1);
  908. X!         close(open(ttyname(fd), O_RDWR));
  909. X!     }
  910. X  
  911. X      if (verbose)
  912. X*** old/x_batch.c    Tue May 23 12:28:22 1989
  913. X--- x_batch.c    Sun Jun 11 10:39:50 1989
  914. X***************
  915. X*** 270,273
  916. X      int modified;
  917. X      char temp[15], ans[15], *s, *strrchr(), *strcpy(), *strncat();
  918. X      unsigned int sleep();
  919. X                      /* dissect the name component */
  920. X
  921. X--- 270,274 -----
  922. X      int modified;
  923. X      char temp[15], ans[15], *s, *strrchr(), *strcpy(), *strncat();
  924. X+     char *strncpy();
  925. X      unsigned int sleep();
  926. X                      /* dissect the name component */
  927. X***************
  928. X*** 273,277
  929. X                      /* dissect the name component */
  930. X      if ((s = strrchr(str, '/')))
  931. X!         strcpy(temp, ++s);
  932. X      else
  933. X          strcpy(temp, str);
  934. X
  935. X--- 274,278 -----
  936. X                      /* dissect the name component */
  937. X      if ((s = strrchr(str, '/')))
  938. X!         strncpy(temp, ++s, 15);
  939. X      else
  940. X          strncpy(temp, str, 15);
  941. X***************
  942. X*** 275,279
  943. X          strcpy(temp, ++s);
  944. X      else
  945. X!         strcpy(temp, str);
  946. X  
  947. X      strcpy(ans, temp);
  948. X
  949. X--- 276,281 -----
  950. X          strncpy(temp, ++s, 15);
  951. X      else
  952. X!         strncpy(temp, str, 15);
  953. X!     temp[14] = '\0';
  954. X  
  955. X      strcpy(ans, temp);
  956. X***************
  957. X*** 325,330
  958. X  char *path;
  959. X  {
  960. X!     int dot;
  961. X!     char *s, *name, temp[15], *ext, *strcpy(), *strrchr();
  962. X      static char ans[13];
  963. X                      /* ignore the path component */
  964. X
  965. X--- 327,332 -----
  966. X  char *path;
  967. X  {
  968. X!     int i, dot;
  969. X!     char *s, *name, temp[15], *ext, *strncpy(), *strrchr();
  970. X      static char ans[13];
  971. X                      /* ignore the path component */
  972. X***************
  973. X*** 330,334
  974. X                      /* ignore the path component */
  975. X      if (s = strrchr(path, '/'))
  976. X!         strcpy(temp, ++s);
  977. X      else
  978. X          strcpy(temp, path);
  979. X
  980. X--- 332,336 -----
  981. X                      /* ignore the path component */
  982. X      if (s = strrchr(path, '/'))
  983. X!         strncpy(temp, ++s, 15);
  984. X      else
  985. X          strncpy(temp, path, 15);
  986. X***************
  987. X*** 332,336
  988. X          strcpy(temp, ++s);
  989. X      else
  990. X!         strcpy(temp, path);
  991. X      name = temp;
  992. X  
  993. X
  994. X--- 334,339 -----
  995. X          strncpy(temp, ++s, 15);
  996. X      else
  997. X!         strncpy(temp, path, 15);
  998. X!     temp[14] = '\0';
  999. X      name = temp;
  1000. X  
  1001. X***************
  1002. X*** 337,345
  1003. X      ext = "";
  1004. X      dot = 0;
  1005. X!     for (s=name; *s; ++s) {
  1006. X!         if (*s == '.' && !dot) {
  1007. X!             dot++;
  1008. X!             *s = '\0';
  1009. X!             ext = s + 1;
  1010. X          }
  1011. X          if (islower(*s))
  1012. X
  1013. X--- 340,348 -----
  1014. X      ext = "";
  1015. X      dot = 0;
  1016. X!     for (i=strlen(temp)-1; i>=0; i--) {
  1017. X!         if (temp[i] == '.' && !dot) {
  1018. X!             dot = 1;
  1019. X!             temp[i] = '\0';
  1020. X!             ext = &temp[i+1];
  1021. X          }
  1022. X          if (islower(temp[i]))
  1023. X***************
  1024. X*** 343,348
  1025. X              ext = s + 1;
  1026. X          }
  1027. X!         if (islower(*s))
  1028. X!             *s = toupper(*s);
  1029. X      }
  1030. X                      /* if null name component */
  1031. X
  1032. X--- 346,351 -----
  1033. X              ext = &temp[i+1];
  1034. X          }
  1035. X!         if (islower(temp[i]))
  1036. X!             temp[i] = toupper(temp[i]);
  1037. X      }
  1038. X                      /* if null name component */
  1039. X*** old/Pcomm.1    Wed Jun 14 08:32:34 1989
  1040. X--- Pcomm.1    Wed Jun 14 08:32:08 1989
  1041. X***************
  1042. X*** 61,65
  1043. X  Dialing Directory.  The dialing directory screen is used to display and
  1044. X  maintain the database of phone number entries, and to select an entry
  1045. X! for dialing.  To dialan entry, just enter the entry number at the
  1046. X  prompt.  If the ``script'' field contains valid Unix shell script, that
  1047. X  file is used to automatically log the user on to the remote system.  See
  1048. X
  1049. X--- 61,65 -----
  1050. X  Dialing Directory.  The dialing directory screen is used to display and
  1051. X  maintain the database of phone number entries, and to select an entry
  1052. X! for dialing.  To dial an entry, just enter the entry number at the
  1053. X  prompt.  If the ``script'' field contains valid Unix shell script, that
  1054. X  file is used to automatically log the user on to the remote system.  See
  1055. XEnd of Patch
  1056. X
  1057. X
  1058. END_OF_FILE
  1059. if test 7060 -ne `wc -c <'patch4'`; then
  1060.     echo shar: \"'patch4'\" unpacked with wrong size!
  1061. fi
  1062. # end of 'patch4'
  1063. fi
  1064. echo shar: End of shell archive.
  1065. exit 0
  1066.